package cn.pop.hsp_system_v2.Pojo.Vo;

import lombok.Data;

@Data
public class ResultVO<T> {

    /**
     * 描述信息
     */
    private String msg;

    /**
     * 操作结果
     */
    private boolean flag;

    /**
     * 数据对象
     */
    private T result;

    public ResultVO(boolean flag, String msg) {
        this.msg = msg;
        this.flag = flag;
    }

    public ResultVO(boolean flag, String msg, T result) {
        this.msg = msg;
        this.result = result;
        this.flag = flag;
    }

    /**
     * 通用result返回类，无数据,成功
     *
     * @param msg 描述信息
     * @return ResultVO
     */
    public static ResultVO success(boolean flag, String msg) {
        return new ResultVO(true, msg);
    }

    /**
     * 通用result返回类，有数据,成功
     *
     * @param msg 描述信息
     * @param obj 数据对象
     * @return ResultVO
     */
    public static ResultVO success(boolean flag,String msg, Object obj) {
        return new ResultVO(true, msg, obj);
    }

    /**
     * 通用result返回类，无数据,失败
     *
     * @param msg 描述信息
     * @return ResultVO
     */
    public static ResultVO failed(boolean flag,String msg) {
        return new ResultVO(false, msg);
    }

    /**
     * 通用result返回类，有数据,失败
     *
     * @param msg 描述信息
     * @param obj 数据对象
     * @return ResultVO
     */
    public static ResultVO failed(boolean flag,String msg, Object obj) {
        return new ResultVO(false, msg, obj);
    }
}
